home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Flex-CW 2.5.1 / Flex.g < prev    next >
Text File  |  1995-10-14  |  7KB  |  224 lines

  1. /*
  2.  * Filename:    Flex.g
  3.  * Author:        Jeff Laing (jeffl@suburbia.apana.org.au)
  4.  *
  5.  * This files defines a simple push-button interface onto the essentially
  6.  * command-line driven lexical analyser generator "Flex 2.5.1".  It requires
  7.  * the GIJO compiler, also available from Tristero and hopefully included in
  8.  * this package.
  9.  *
  10.  * Copyright (C) 1995    Tristero Computer Systems Pty. Ltd.    ___//|
  11.  *                        ACN 067 057 809                         O \\|
  12.  *
  13.  * The following flags do not have a corresponding GIJO interface.
  14.  *
  15.  * -T trace mode
  16.  * -S skeleton file
  17.  * -H header skeleton
  18.  * -h [headername]
  19.  * -g header pathname in output file
  20.  * -t standard output, not file
  21.  * -a tempdir
  22.  */
  23. filetype {'TEXT'}
  24.  
  25. gijo {{
  26.     160,                                /* height of the dialog in pixels */
  27.     "Process input parser description and produce a lexical "
  28.     "analyzer which may be included into C / C++ programs.",
  29.     {
  30.  
  31. /*****************************************************************************/
  32.  
  33. /*1*/    notDependent{},TextBox{ gray, { 24,18,116,170 }, "Parser" },
  34.  
  35. /*2*/    notDependent{},
  36.         CheckOption{
  37.             NotSet, {30, 24, 46, 168}, "Case-insensitive", "-i",
  38.             "Generate scanner which is case-insensitive. The case of letters "
  39.             "in input patterns will be ignored and tokens in the input will "
  40.             "be matched, regardless of case."
  41.         },
  42.  
  43. /*3*/    Or{{
  44.             (1<<12)+24,            // -Cem
  45.             (2<<12)+24,            // -Cm
  46.             (3<<12)+24,            // -Ce
  47.             (4<<12)+24            // -C
  48.         }},
  49.         CheckOption{
  50.             NotSet, {50, 24, 66, 168}, "Interactive", "-I",
  51.             "Generate an scanner which stops immediately rather than looking "
  52.             "ahead if it knows that currently scanned text cannot be part of "
  53.             "a longer rule's match."
  54.         // -B     (interactive=FALSE)
  55.         },
  56.  
  57. /*4*/    notDependent{},
  58.         CheckOption{
  59.             NotSet, {70, 24, 86, 168}, "8-bit clean", "-8",
  60.             "Generate a scanner which can handle 8-bit characters.  The "
  61.             "alternative is one which only handles 7-bit input."
  62.         // -7
  63.         },
  64.  
  65. /*5*/    notDependent{},
  66.         CheckOption{
  67.             Set, {90, 24, 106, 168}, "Default ECHO rule", "-s",
  68.             "Automatically include a rule which will match any unmatched "
  69.             "input and will echo it to stdout."
  70.         },
  71.  
  72. /*****************************************************************************/
  73.  
  74. /*6*/    notDependent{},TextBox{ gray, { 24,180,116,316 }, "Code" },
  75.  
  76. /*7*/    notDependent{},
  77.         CheckOption{
  78.             NotSet, {30,186,46,310}, "Debug", "-d",
  79.             "Generate debugging code within the scanner which will write "
  80.             "debugging info to stderr if global 'yy_flex_debug' is true."
  81.         },
  82.  
  83. /*8*/    notDependent{},
  84.         CheckOption{
  85.             NotSet, {46,186,62,310}, "C++", "-+",
  86.             "Generate a C++ scanner."
  87.         },
  88.  
  89. /*9*/    notDependent{},
  90.         CheckOption{
  91.             NotSet, {62,186,78,310}, "Lex compatible", "-l",
  92.             "Generate a parser which is compatible with AT&T Lex output."
  93.         },
  94.  
  95. /*10*/    notDependent{},
  96.         CheckOption{
  97.             Set, {78,186,94,310}, "#line directives", "-L",
  98.             "Include #line directives in its output.  This is only useful if "
  99.             "the C compiler used recognises this construct."
  100.         },
  101.  
  102. /*11*/    notDependent{},
  103.         CheckOption{
  104.             NotSet, {94, 186, 110, 310}, "Use read()", "-R",
  105.             "Use read() instead of standard I/O. (No guarantee that this "
  106.             "will work on Macintosh.)"
  107.         },
  108.  
  109. /*****************************************************************************/
  110.  
  111. /*12*/    notDependent{}, TextBox{ gray, { 124,18,152,464 }, "Output" },
  112.  
  113. /*13*/    notDependent{},
  114.         CheckOption{
  115.             NotSet, {130, 24, 146, 169}, "Suppress warnings", "-w",
  116.             "Suppress warnings during parsing the input file."
  117.         },
  118.  
  119. /*14*/    notDependent{},
  120.         CheckOption{
  121.             NotSet, {130, 170, 146, 258}, "Backtrack", "-b",
  122.             "Generate a list of scanner states which require backtracking "
  123.             "to the file 'lex.backtrack'.  By adding rules, these can be "
  124.             "eliminated and scanner performance improved."
  125.         },
  126.  
  127. /*15*/    notDependent{},
  128.         CheckOption{
  129.             NotSet, {130, 260, 146, 368}, "Performance", "-p",
  130.             "Generate a performance report to stderr."
  131.         },
  132.  
  133. /*16*/    notDependent{},
  134.         CheckOption{
  135.             NotSet, {130, 370, 146, 460}, "Statistics", "-v",
  136.             "Generate a summary of statistics regarding the generated scanner"
  137.         },
  138.  
  139. /*****************************************************************************/
  140.  
  141. /*17*/    notDependent{},
  142.         RegularEntry{
  143.             "Name:", {64, 330, 80, 379}, {64, 380, 80, 460 },
  144.             "yy", keepCase, "-P≈",
  145.             "Flex uses this to determine the name of the scanner, both the "
  146.             "disk file and the C functions (if appropriate).  If ≈ is specified, "
  147.             "flex will use 'lex.≈.c' and '≈' respectively."
  148.         },
  149.  
  150. /*****************************************************************************/
  151.  
  152. /*18*/    notDependent{}, NestedDialog{
  153.             1,
  154.             {95,330,116,464},
  155.             "Table format…",
  156.             "Display controls for specifying compression and alignment to be "
  157.             "applied to parser tables."
  158.         },
  159.  
  160. /*****************************************************************************/
  161.  
  162. /*19*/    Or{{17}},        // we can only hit DoIt if a -Pname is specified
  163.         DoItButton{},
  164.  
  165. /*20*/    notDependent{},    // Credit where credit is due
  166.         VersionDialog{
  167.             VersionString{"2.5.1"},
  168.             "Flex 2.5.1 by Vern Paxson\n\n"
  169.             "Macintosh interface by Jeff Laing <jeffl@suburbia.apana.org.au>",
  170.             0
  171.         },
  172.  
  173. /*21*/    notDependent{},Icon {128,{ 24, 330, 24+32, 330+32 }},
  174. /*22*/    notDependent{},TextTitle{ 0, {20,380,58,464}, 0, 24,"Flex"}
  175.     }
  176.  
  177. /*****************************************************************************/
  178.  
  179. },{
  180.     124,                    /* height of the dialog in pixels */
  181.     "This window allows the user to change the characteristics "
  182.     "of the generated parser tables.",        /* help string */
  183.     {
  184. /*23*/    notDependent{},Box{ black, { 24,18,100,462 } /* , "Table format" */ },
  185.  
  186. /*24*/    notDependent{},
  187.         RadioButtons{{
  188.             {30,24,46,264},"Equivalence & Meta-equivalence","-Cem",Set,
  189.             "Generate both equivalence and meta-equivalence tables. "
  190.             "This option should result in the slowest + smallest scanner",
  191.  
  192.             {30,270,46,456},"Meta-equivalence","-Cm",NotSet,
  193.             "Generate meta-equivalence tables.  Slight performance overhead",
  194.  
  195.             {46,24,62,264},"Equivalence","-Ce",NotSet,
  196.             "Generate equivalence tables.  Can give dramatic reductions "
  197.             "in final table/object file sizes",
  198.  
  199.             {46,270,62,456},"Compressed","-C",NotSet,
  200.             "Compress scanner tables but do not generate equivalence "
  201.             "or meta-equivalence tables",
  202.  
  203.             {62,24,78,264},"Equivalence, no compression","-Cfe",NotSet,
  204.             "Generate equivalence tables without compression",
  205.  
  206.             {62,270,78,456},"Equivalence, fast format","-CFe",NotSet,
  207.             "Generate equivalence tables and use fast scanner "
  208.             "representation.",
  209.  
  210.             {78,24,94,264},"No compression","-Cf",NotSet,
  211.             "Generate full scanner tables without compression",
  212.  
  213.             {78,270,94,456},"Fast format","-CF",NotSet,
  214.             "Use fast scanner representation on uncompressed tables"
  215.         }},
  216.  
  217. /*25*/    notDependent{},
  218.         CheckOption{
  219.             NotSet, {104, 24, 120, 195}, "Longword alignment", "-A",
  220.             "Align tables to longword boundary.  Sacrifice memory usage "
  221.             "for execution speed."
  222.         }
  223.     }
  224. }}